function Valida_Dato(e,opc)
{
    //Segun la opcion se habilita o no el espacio
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==8 || tecla==0) return true; //Tecla de retroceso (para poder borrar)
    switch(opc)
    {
        case 1://Para numeros enteros en general. Solicitudes, cedulas,nit, numeros de identificacion, etc
            patron = /[1234567890-]/; //solo numeros y lineas
            break;
 
        case 2://Para texto largo general
            if (tecla==32) return true; //Tecla de espacio
            patron = /[a-zA-ZÃ�ï¿½Ã�Â±1234567890,.()-Ã�ï¿½Ã�ï¿½Ã�ï¿½Ã�ï¿½Ã�ï¿½Ã�Â¡Ã�Â©Ã�Â­Ã�Â³Ã�Âº]/; //caracteres y numeros
            break;
 
        case 3://Para numeros telefonicos
            if (tecla==32) return true; //Tecla de espacio
            patron = /[EXText1234567890.()-]/;
            break;
 
        case 4://para campos que necesitan valores numericos de precios
            patron = /[1234567890.,]/; //solo numeros puntos y comas
            break;
 
        case 5://Para validar campos de fecha
            patron = /[1234567890/]/; //solo numeros
            break;
 
        case 6://Para validar campos de nombre
            if (tecla==32) return true; //Tecla de espacio
            patron = /[a-zA-ZÃ�ï¿½Ã�Â±Ã�Â¡Ã�Â©Ã�Â­Ã�Â³Ã�Âº]/;
            break;
 
        case 7://Para validar email
            patron = /[a-zA-Z1234567890@.-_]/;
            break;
 
        case 8://Para nÃ�Âºmeros enteros positivos
            patron = /[1234567890]/; //solo numeros enteros positivos
            break;
 
        case 9://Direcciones
            if (tecla==32) return true; //Tecla de espacio
            patron = /[a-zA-ZÃ�ï¿½Ã�Â±1234567890.()$,-]/;
            break;
 
        case 10://Caracteres y nÃ�Âºmeros
            if (tecla==32) return true;
            patron = /[a-zA-ZÃ�ï¿½Ã�Â±1234567890]/;
            break;
    }
    te = String.fromCharCode(tecla);
    return patron.test(te);
}
